package org.nanotek.cms.domain;

import java.util.Set;

import org.nanotek.AbstractBase;
import org.nanotek.Base;
import org.nanotek.Chain;
import org.nanotek.Kong;

/**
 * A TimeChain holds a series of "time related values" that are build upon a relation between them. 
 * Which means that the Set of values (retrieved using the getChain method) are linked together 
 * by some "logic defined" during runtime operations. 
 * 
 * The Class is defined as abstract since the DateBase and the Key of the class aren't defined. 
 * 
 * Not Yet Finished.
 * 
 * @author josecanovamauger
 *
 */
@SuppressWarnings("serial")
public abstract class TimeChain <T extends DateBase<?> , K extends Base<?>> extends AbstractBase<K> implements  Chain<T,K> , Kong<Class<T>>{

	@Override
	public abstract  Set<T> getChain();

	@Override
	public abstract Class<T> get();
	
	
}
